#pragma once

#include <string>
#include <vector>
#include <QMetaType>

namespace kryptos { namespace entities {

class SymmetricKeyInfo
{
public:
    SymmetricKeyInfo();
    SymmetricKeyInfo(std::string id,
                     std::string symkeyfile,
                     bool decryptOnly,
                     unsigned long long offset);

    virtual ~SymmetricKeyInfo();

    std::string        id() const;
    std::string        keyfile() const;
    bool               isDecryptOnly() const;
    unsigned long long offset() const;

private:
    std::string        m_id, m_symkeyfile;
    bool               m_decryptonly;
    unsigned long long m_offset;

};

typedef std::vector<SymmetricKeyInfo> SymmetricKeyInfoList;

}}

Q_DECLARE_METATYPE(kryptos::entities::SymmetricKeyInfo)
Q_DECLARE_METATYPE(kryptos::entities::SymmetricKeyInfoList)
